﻿<?
	require_once('../CNN/conn.php'); 			// -> Conexão com a base de dados 
	include_once("../CONFIG/config.php");		// -> DEFINES e etc
	include_once("../CONFIG/funcoes.php");		// -> funções gerais
	require_once('../CONFIG/funcoes_db.php');   // -> funções com relação à base de dados
	
	
	$query 		 = "";
	
	$jsonObjName = request_GET_POST('jsonObjName');     // Nome do ojbeto json (caso tenha sido informado	
	$tabelaPrinc = request_GET_POST('tabelaPrincipal'); // Tabela principal a ser consultada
	
	
	/* Verifica se "$tabelaPrinc" não é vazia, para que seja montada a consulta
	 * de acordo com a tabela principal informada. Caso seja vazia, verifica-se
	 * a existência da variável "query" passada via GET ou POST.
	 */
	if (! empty($tabelaPrinc) )
	{
		
		switch ( strtolower($tabelaPrinc) )
		{
			case "preresposta":
				
				$query = "	SELECT 	catPR.Descricao AS categPreResp, catPR.codCategPreResp, PR.codPreResp, 
									PR.tipo, PR.Descricao AS preResp
							FROM PreResposta PR
							INNER JOIN CategPreResp catPR ON ( PR.codCategPreResp = catPR.codCategPreResp ) 
							ORDER BY catPR.Descricao, PR.Descricao ";
							
			break;
			
			case "categoria":
			
				$query = " 	SELECT * FROM Categoria 
							WHERE CodCateg = ". request_GET_POST('codigo');
			break;
		}
		
	} else 
	{ 
		$query = request_GET_POST('query');
	}
	
	
	if ( !empty($query) )
	{
		echo montaJson($query, $jsonObjName, $database_conn, $conn);
	} else 
	{
		echo "Não foi possível realizar a consulta solicitada.";
	}
	
	
	/* Função: montaJson
	 * 
	 * Descrição: Monta uma string que representa um JSON com o 
	 * 			  resultado da consulta informada. O nome dos 
	 * 			  "campos" do JSON corresponde exatamento ao nome
	 * 			  do campo no Banco de Dados.
	 * 
	 * Parâmetros: 	$query 		 - Consulta SQL a ser executada
	 *				$jsonObjName - Nome do Objeto JSON a ser criado, caso 
	 *							   tenha sido informado.
	*			   $database     - base de dados
	 * 			   $conn     	 - conexão com a base de dados
	 *
	 * Retorno: JSON com os dados.
	 * Autor: Alexandre Varizi Ribeiro
	 * Data:  22/06/2012
	 */
	function montaJson( $query, $jsonObjName, $database, $conn )
	{
		$json       = "";
		$rs         = execute_query($query, $database, $conn);
		$fields     = fieldNames($rs);
		$countRec   = mysql_num_rows($rs);
		$currentRec = 0;
		
		if ( !empty($jsonObjName) )
		{
			$json .= " { \"". $jsonObjName ."\": ";
		}
		
		$json .= " [ ";
		
		while ( $row = mysql_fetch_array($rs) )
		{	
			$currentRec += 1;
		
			$json .= " { ";
			
			for ($i = 0; $i < count($fields); $i++)
			{
				$json .= " \"" . $fields[$i] . "\" : \"" . $row[$i] . "\" ";
				
				if ($i < count($fields) - 1)
				{
					$json .= ", ";
				}
			}
			
			$json .= " } ";
			
			if ($currentRec < $countRec )
			{
				$json .= " , ";
			}
		}
		
		$json .= " ] ";
		
		if ( !empty($jsonObjName) ) 
		{
			$json .= ' } ';
		}
		
		
		return $json;
	}
	
	
	
	
?>